package basic;

public class NumericalTransfer {
    public static void main(String[] args) {
        // 引用传递示例
        UserVo student = new UserVo();
        student.setName("lisi");
        student.setAge(12);
        test1(student); // entity的值发生了变化
        System.out.println(student.getName() + "," + student.getAge()); // 输出结果：zhangSan,boy

        // 值传递示例
        // String传递的也是引用副本的传递，但是因为String为final的，所以和按值传递等同的
        String str = new String("123");
        test2(str); // str的值没有发生变化
        System.out.println(str); // 输出结果： 123
    }

    /**
     * 引用传递
     */
    public static UserVo test1(UserVo entity) {
        entity.setName("zhangSan");
        entity.setAge(13);
        return entity;
    }

    /**
     * 值传递
     */
    public static String test2(String str) {
        str = "abc";
        return str;
    }
}
